package com.rc.saas.mini.model.member;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.rc.saas.mini.common.base.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description
 * @Author
 * @Date: 2022-05-16
 */

@ApiModel(value = " member_refund_order ", description = " 退款订单表 ")
public class MemberRefundOrder extends BaseModel {

    @ApiModelProperty(value = "ID")
    private Long refundOrderId;
 
    @ApiModelProperty(value = "运营商")
    private String tenantCode;
 
    @ApiModelProperty(value = "会员ID")
    private Long memberId;
 
    @ApiModelProperty(value = "退款交易单号")
    private String orderNum;
 
    @ApiModelProperty(value = "支付商户单号")
    private String outOrderNum;
 
    @ApiModelProperty(value = "支付的账户类型 0个人钱包 1企业钱包 2共享余额 默认0")
    private String accountType;
 
    @ApiModelProperty(value = "退款订单类型 (0.可退 1不可退)")
    private String refundType;
 
    @ApiModelProperty(value = "记录类型(0会员在线充值,1支出,2转账收入,3分配余额,4后台订单调整,5平台赠送,6积分兑换 7回收金额 8平台钱包充值 9分销返利 10资源占用费 11平台扣费 12 数据迁移 13共享额度变更 14后台退款 15.原路退款)")
    private String recordType;
 
    @ApiModelProperty(value = "充值金额")
    private BigDecimal rechargeAmount;
 
    @ApiModelProperty(value = "实扣金额")
    private BigDecimal factAmount;
 
    @ApiModelProperty(value = "赠送金额")
    private BigDecimal giveAmount;
 
    @ApiModelProperty(value = "可退实扣金额")
    private BigDecimal refundFactAmount;
 
    @ApiModelProperty(value = "可收赠送金额")
    private BigDecimal refundGiveAmount;
 
    @ApiModelProperty(value = "已退实扣金额")
    private BigDecimal refundedFactAmount;
 
    @ApiModelProperty(value = "已收赠送金额")
    private BigDecimal refundedGiveAmount;
 
    @ApiModelProperty(value = "退款状态 (0正常 1退款中 2退款成功 3退款失败 4已完成(不可退,额度耗尽已完结))")
    private String refundStatus;
 
    @ApiModelProperty(value = "退款原因")
    private String refundReason;
 
    @ApiModelProperty(value = "支付方式  0 微信支付  1支付宝 Z0中行微信 Z1中行支付宝 U银联支付 C农行支付 ZX中行微信清分支付")
    private String paymentType;
 
    @ApiModelProperty(value = "订单完结时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date finishTime;
 
    @ApiModelProperty(value = "退款申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refundApplyTime;
 
    @ApiModelProperty(value = "备注")
    private String remark;
 
    @ApiModelProperty(value = "null")
    private String createdBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;
 
    @ApiModelProperty(value = "null")
    private String lastUpdatedBy;
 
    @ApiModelProperty(value = "null")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdatedTime;
 
    public Long getRefundOrderId() {
        return refundOrderId;
    }

    public void setRefundOrderId(Long refundOrderId) {
        this.refundOrderId = refundOrderId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getOutOrderNum() {
        return outOrderNum;
    }

    public void setOutOrderNum(String outOrderNum) {
        this.outOrderNum = outOrderNum;
    }

    public String getAccountType() {
        return accountType;
    }

    public void setAccountType(String accountType) {
        this.accountType = accountType;
    }

    public String getRefundType() {
        return refundType;
    }

    public void setRefundType(String refundType) {
        this.refundType = refundType;
    }

    public String getRecordType() {
        return recordType;
    }

    public void setRecordType(String recordType) {
        this.recordType = recordType;
    }

    public BigDecimal getRechargeAmount() {
        return rechargeAmount;
    }

    public void setRechargeAmount(BigDecimal rechargeAmount) {
        this.rechargeAmount = rechargeAmount;
    }

    public BigDecimal getFactAmount() {
        return factAmount;
    }

    public void setFactAmount(BigDecimal factAmount) {
        this.factAmount = factAmount;
    }

    public BigDecimal getGiveAmount() {
        return giveAmount;
    }

    public void setGiveAmount(BigDecimal giveAmount) {
        this.giveAmount = giveAmount;
    }

    public BigDecimal getRefundFactAmount() {
        return refundFactAmount;
    }

    public void setRefundFactAmount(BigDecimal refundFactAmount) {
        this.refundFactAmount = refundFactAmount;
    }

    public BigDecimal getRefundGiveAmount() {
        return refundGiveAmount;
    }

    public void setRefundGiveAmount(BigDecimal refundGiveAmount) {
        this.refundGiveAmount = refundGiveAmount;
    }

    public BigDecimal getRefundedFactAmount() {
        return refundedFactAmount;
    }

    public void setRefundedFactAmount(BigDecimal refundedFactAmount) {
        this.refundedFactAmount = refundedFactAmount;
    }

    public BigDecimal getRefundedGiveAmount() {
        return refundedGiveAmount;
    }

    public void setRefundedGiveAmount(BigDecimal refundedGiveAmount) {
        this.refundedGiveAmount = refundedGiveAmount;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public String getRefundReason() {
        return refundReason;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    public String getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(String paymentType) {
        this.paymentType = paymentType;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public Date getRefundApplyTime() {
        return refundApplyTime;
    }

    public void setRefundApplyTime(Date refundApplyTime) {
        this.refundApplyTime = refundApplyTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }

}
